home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 1 / Gold Medal Software Volume 1 (Gold Medal) (1994).iso / graphics / tierra40.arj / TIERRA / PROTOTYP.H < prev    next >
C/C++ Source or Header  |  1992-09-09  |  15KB  |  391 lines

  1. /* prototyp.h  9-9-92 */
  2. /* function prototypes for Tierra Simulator, included at end of tierra.h */
  3. /* Tierra Simulator V4.0: Copyright (c) 1991, 1992 Tom Ray & Virtual Life */
  4.  
  5. /*
  6.  * h_sccsid: @(#)prototyp.h    1.4    4/26/92
  7.  */
  8.  
  9. #include "license.h"
  10. #include "configur.h"
  11.  
  12. #ifndef PROTOTYP_H
  13. #define PROTOTYP_H
  14.  
  15. extern void FreeGen P_((GList  *g));
  16. extern GList * GetAGen P_((I8s  *crit));
  17. extern I8s IsFree P_((I32s  x));
  18. extern I32s MemAlloc P_((I32s  size, I32s  pref, I32s  tol));
  19. extern void MemDealloc P_((I32s  x, I32s  y));
  20. extern void MemInit P_((void));
  21. extern void Inject P_((FpInst  g, I32s  size, I32s  sad, I32s  tol,
  22.         I32s  disk, float  *rrpi));
  23. extern void InjectFromBank P_((I8s  *crit, I32s  sad, I32s  tol));
  24. extern Pcells GetFreeCell P_((void));
  25. extern Pcells FindPutCell P_((I32s  adre));
  26. extern I32s Hash P_((I32s  size, FpInst  v));
  27. extern void FreeDynMem P_((void));
  28. extern void GarbageCollectGB P_((void));
  29. extern void VerifyGB P_((void));
  30. extern void SavGeneBank P_((void));
  31. extern void SavDynMem P_((I8s  filename[]));
  32. extern void ReadGeneBank P_((void));
  33. extern void ReadDynMem P_((I8s  filename[]));
  34. extern void DivideBookeep P_((Pcells  ce, Pcells  ne));
  35. extern Event DivGenBook P_((Pcells  ce, Pcells  nc, Event  InstExe,
  36.         I32s  reaped, I32s  mom, I32s  same, I32s  disk));
  37. extern void OutDisk P_((I32s bd, Pcells nc));
  38. extern void ReapBookeep P_((Pcells  ce));
  39. extern Event ReapGenBook P_((Pcells  ce));
  40. extern void MutBookeep P_((I32s i));
  41. extern void plan P_((void));
  42. extern void extract P_((Pcells  ce));
  43. extern void GetGenList P_((I32s  flags));
  44. extern void InitGList P_((Pgl g, I32s si, I32s gi, I32s size));
  45. extern GlIndex CheckGenotype P_((Dem  ce, I32s  flags));
  46. extern int gc P_((void));
  47. extern I8s IsNewSize P_((I32s  si));
  48. extern void NewSize P_((Dem  *ce, I32s  flags));
  49. extern I16s IsInGenQueue P_((Dem  *ce, I32s  hash));
  50. extern I16s IsInGenBank P_((Dem  *ce, I32s  hash, I32s  flags));
  51. extern I16s NewGenotype P_((Dem  *ce, I32s  hash));
  52. extern I32u WhoIs P_((Pcells  Fp ce, I32s a));
  53. extern I8s IsSameGen P_((I32s size, FpInst g1, FpInst g2));
  54. extern void gq_add P_((GList  *p));
  55. extern void gq_movtop P_((GList  *p));
  56. extern I8s gq_swap P_((void));
  57. extern void gq_rem P_((GList  *p));
  58. extern GList *gq_read P_((int si, int gi));
  59. extern void printq P_((void));
  60. extern void IncrLbl P_((I8s *lbln, I8s *lblo));
  61. extern void MaxLbl P_((I8s *lbl, I8s *s));
  62. extern I8s *Int2Lbl P_((I32s i));
  63. extern I16s Lbl2Int P_((I8s  *s));
  64. extern void DelGenFile P_((Pgl tgl));
  65. extern FILE *open_ar P_((I8s *file, I32s size, I32s format, I32s mode));
  66. extern head_t read_head P_((FILE * fp));
  67. extern void write_head P_((FILE * fp, head_t * head));
  68. extern indx_t *read_indx P_((FILE * fp, head_t * head));
  69. extern void write_indx P_((FILE * fp, head_t * head, indx_t * indx));
  70. extern I32s find_gen P_((FILE  *fp, indx_t  *indx, I8s  *gen, I32s  n));
  71. extern Pgl get_gen P_((FILE * fp, head_t * head, indx_t * indxn, I32s n));
  72. extern I32s add_gen P_((FILE * fp, head_t * head, indx_t ** indx, Pgl gen));
  73. extern I16s GetAscGen P_((Pgl g, I8s ifile[]));
  74. extern I8s WritGenFile P_((Pgl  g, I8s  file[]));
  75. extern I8s WritAscFile P_((Pgl  g, I8s  *file));
  76. extern I16s GetGenFormat P_((Pgl g, I8s file[]));
  77. extern Ascii2Ebcdic P_((I8s *s));
  78. extern Ebcdic2Ascii P_((I8s *s));
  79. extern void WritEcoB P_((I32u bits, I8s * buf));
  80. extern void SetBit P_((I32u *seed, I32u bit, I32u value));
  81. extern void nop P_((Pcells ce));
  82. extern void not0 P_((Pcells ce));
  83. extern void shl P_((Pcells ce));
  84. extern void ifz P_((Pcells ce));
  85. extern void math P_((Pcells ce));
  86. extern void push P_((Pcells ce));
  87. extern void pop P_((Pcells ce));
  88. extern void tcall P_((Pcells ce));
  89. extern void call P_((Pcells ce));
  90. extern void mov P_((Pcells ce));
  91. extern void movdd P_((Pcells ce));
  92. extern void movdi P_((Pcells ce));
  93. extern void movid P_((Pcells ce));
  94. extern void movii P_((Pcells ce));
  95. extern void adr P_((Pcells ce));
  96. extern I32s mal P_((Pcells  ce, I32s  *sug_addr, I32s  sug_size, I32s  mode));
  97. extern I8s  chmode P_((Pcells ce, I32s start, I32s size, I32s mode));
  98. extern void malchm P_((Pcells ce));
  99. extern void divide P_((Pcells ce));
  100. extern void CheckCells P_((void));
  101. extern I32s flaw P_((Pcells ce));
  102. extern I32s template P_((I32s f, I32s b, I32s  *slim, I32s tz, I32s dir,
  103.     I32s mode, Pcells ce));
  104. extern I32s ctemplate P_((I32s  *f, I32s  *b, I32s  *slim, I8s  *mode,
  105.     I32s  tz, I32s  dir, Pcells  ce));
  106. extern I32s btemplate P_((I32s f, I32s b, I32s  *slim, I32s tz, I32s dir,
  107.     I32s mode, Pcells ce));
  108. extern I8s IsPriv P_((Pcells ce, I32s a));
  109. extern I8s IsBitPriv P_((Pcells ce, I32s a, I32s mode, I32s track));
  110. extern I8s IsInsideCell P_((Pcells ce, I32s a));
  111. extern void WhichCell P_((I32s  a, Pcells Fp  ce, I8s  *md));
  112. /* extern void SetFlag P_((Pcells ce)); */
  113. extern void thfree P_((I8s Hp ptr));
  114. extern void tfree P_((I8s Fp ptr));
  115. extern I8s Hp threcalloc P_((I8s  Hp ptr, I32u  nsiz, I32u  osiz));
  116. extern I8s Fp trecalloc P_((I8s  Fp ptr, I32u  nsiz, I32u  osiz));
  117. extern I8s Hp thcalloc P_((I32u num, I32u siz));
  118. extern I8s Fp tcalloc P_((I32u  num, I32u  siz));
  119. extern I32u tfread P_((I8s Hp ptr, I32s size, I32s n, FILE * stream));
  120. extern I32u tfwrite P_((I8s Hp ptr, I32s size, I32s n, FILE * stream));
  121. extern void IncrSliceQueue P_((void));
  122. extern void EntBotSlicer P_((Pcells  ce));
  123. extern void UpReaper P_((Pcells  ce));
  124. extern void DownReaper P_((Pcells  ce));
  125. extern void UpRprIf P_((Pcells  ce));
  126. extern void DownReperIf P_((Pcells  ce));
  127. extern void EntBotReaper P_((Pcells  ce));
  128. extern void RmvFrmReaper P_((Pcells  ce));
  129. extern void RmvFrmSlicer P_((Pcells  ce));
  130. extern void SlicerPhoton P_((void));
  131. extern I32s PhotonFit P_((I32s a, I8s *PhotonInst, I32s PhotonSize));
  132. extern I32s PhotonSlide P_((I32s a, I8s *PhotonInst, I32s PhotonSize,
  133.                 I32s PhotonWidth));
  134. extern void PhotonTranslate P_((I8s *PhotonInst, I8s *PhotonWord));
  135. extern void SlicerQueue P_((void));
  136. extern void RanSlicerQueue P_((void));
  137. extern int main P_((int argc, char *argv[]));
  138. extern void life P_((void));
  139. extern void TimeSlice P_((Pcells  ce, I32s size_slice));
  140. extern I16s FetchDecode P_((Pcells  ce));
  141. extern void IncrementIp P_((Pcells  ce));
  142. extern void SystemWork P_((Pcells  ce));
  143. extern void mutate P_((void));
  144. extern void mut_site P_((HpInst s, I32s t));
  145. extern void ReapCheck P_((void));
  146. extern void reaper P_((I32s  ex, I32s  sad));
  147. extern I32s SubEvent P_((Event * event1, Event * event2, Event * result));
  148. extern void tsrand P_((I32s seed));
  149. extern double tdrand P_((void));
  150. extern I8s GetAVar P_((I8s data[85]));
  151. extern void GetAMap P_((I8s  file[85]));
  152. extern void GetSoup P_((I32s argc, I8s *argv[]));
  153. extern void StupGenLists P_((void));
  154. extern void GetNewSoup P_((void));
  155. extern void GetOldSoup P_((FILE * inf));
  156. extern void WriteSoup P_((I32s close_disk));
  157. extern void ToggleLog P_((I32s mode));
  158. extern I16s glcmp P_((const void *gl1, const void *gl2));
  159. extern I16s slcmp P_((const void *sl1, const void *sl2));
  160. extern void InitCell P_((I32s  ar, I32s  ci, Pcells  ce));
  161. extern void GenExExe P_((Pcells  ce, I32s adrt));
  162. extern void GenExMov P_((Pcells  ce, I32s  to, I32s  from));
  163. extern void GenExTemp P_((I32s adrt, Pcells  ce, I32s tsize));
  164. extern void FEExit P_((I32s n));
  165. extern void FEMemCheck P_((I8s  *msg));
  166. extern void FEMemProf P_((I32s  SizSoup, I32s  SizCells, I32s  SizFreeMem,
  167.     I32s  SizSl, I32s  SizSli, I32s  SizGl, I32s  SizGli, I32s  SizGen));
  168. extern void FEMessage P_((I32s n, I8s ** pbuf));
  169. extern void FEStats P_((void));
  170. extern void FEClrmsg P_((I32s n));
  171. extern void FECeol P_((void));
  172. extern I16s FEGetc P_((void));
  173. extern void FEStartup P_((void));
  174. extern void FEPlan P_((I32s MaxPop, I32s MaxMem, Genotype * MaxGenPop,
  175.                Genotype * MaxGenMem));
  176. extern void FEPrintf P_((I32s scr_x, I32s scr_y, I32s scr_a, ...));
  177. /* turbo c insanity in line above */
  178. extern void FEError P_((I32s err_no, I32s err_exit, I32s err_write, ...));
  179.  
  180. extern void query_size P_((I32s size_class));
  181. extern void query_species P_((I32s num));
  182. #if FRONTEND != STDIO
  183. extern void query_spec_d P_((I32s size, I32s lbl));
  184. extern void FEMenu P_((void));
  185. #endif
  186.  
  187.  
  188. #ifdef __TURBOC__
  189. #if FRONTEND == STDIO
  190. extern int T_sig_int   P_((void));
  191. #endif
  192. #if FRONTEND == BASIC
  193. extern void FE_DosVideoToggle P_((I16s mode));
  194. #endif
  195. #endif
  196.  
  197. #ifdef unix
  198. extern void T_sig_int  P_((I32s sig, I32s code, I32s *scp, I8s *addr));
  199. extern void T_sig_read P_((I32s sig, I32s code, I32s * scp, I8s *addr));
  200. extern void T_sig_write P_((I32s sig, I32s code, I32s * scp, I8s *addr));
  201. extern void T_sig_info P_((I32s sig, I32s code, I32s * scp, I8s *addr));
  202. #endif
  203.  
  204. #ifdef ALCOMM
  205. extern void    _t_init_alcomm P_((void));
  206. extern void    _t_life_bookeep P_((void));
  207. extern void     _t_memory_stats P_(( unsigned char which, void *indata,
  208.                     int inlen, void **outdata, int *outdatalen ));
  209. extern void     _t_sim_runcontrol P_(( unsigned char which, void *data,
  210.                     int datalen ));
  211. extern void     _t_init_birthdeath P_(( ALtCLink *clink ));
  212. extern void     _t_query_org P_(( I32s which, void * indata, int inlen, 
  213.                     void **outdata, int *outdatalen ));
  214. #endif
  215.  
  216. #ifdef MICRO
  217. extern void Micro_Spy P_(( Pcells ce));
  218. #endif
  219.  
  220. #ifdef HSEX
  221. extern I8s  FindMate P_((Pcells ce));
  222. extern I16s SetXover P_((Pcells ce));
  223. extern I8s  DoMate   P_((void));
  224. #endif
  225.  
  226. #if INST != 1
  227.  
  228. extern void regorder P_((Pcells  ce));
  229. extern void pushst P_((Pcells  ce));
  230. extern void not P_((Pcells  ce));
  231. extern void put P_((Pcells  ce));
  232. extern I8s ReadFPut P_((Pcells  ce, I32s  *value));
  233. extern void get P_((Pcells  ce));
  234. extern void Write2Get P_((Pcells  ce, I32s  value));
  235. extern void Broad2Get P_((I32s  value));
  236. extern void Emigrate P_((Pcells  ce));
  237.  
  238. #endif /* INST != 1 */
  239.  
  240. #if INST == 1
  241.  
  242. extern void pnop P_((Pcells  ce));
  243. extern void pnot0 P_((Pcells  ce));
  244. extern void pshl P_((Pcells  ce));
  245. extern void pzero P_((Pcells  ce));
  246. extern void pifz P_((Pcells  ce));
  247. extern void psub_ab P_((Pcells  ce));
  248. extern void psub_ac P_((Pcells  ce));
  249. extern void pinc_a P_((Pcells  ce));
  250. extern void pinc_b P_((Pcells  ce));
  251. extern void pdec_c P_((Pcells  ce));
  252. extern void pinc_c P_((Pcells  ce));
  253. extern void ppushax P_((Pcells  ce));
  254. extern void ppushbx P_((Pcells  ce));
  255. extern void ppushcx P_((Pcells  ce));
  256. extern void ppushdx P_((Pcells  ce));
  257. extern void ppopax P_((Pcells  ce));
  258. extern void ppopbx P_((Pcells  ce));
  259. extern void ppopcx P_((Pcells  ce));
  260. extern void ppopdx P_((Pcells  ce));
  261. extern void ptjmp P_((Pcells  ce));
  262. extern void ptjmpb P_((Pcells  ce));
  263. extern void ptcall P_((Pcells  ce));
  264. extern void pret P_((Pcells  ce));
  265. extern void pmovdc P_((Pcells  ce));
  266. extern void pmovba P_((Pcells  ce));
  267. extern void pmovii P_((Pcells  ce));
  268. extern void padr P_((Pcells  ce));
  269. extern void padrb P_((Pcells  ce));
  270. extern void padrf P_((Pcells  ce));
  271. extern void pmal P_((Pcells  ce));
  272. extern void pdivide P_((Pcells  ce));
  273.  
  274. #endif /* INST == 1 */
  275.  
  276. #if INST == 2
  277.  
  278. extern void pnop P_((Pcells  ce));
  279. extern void pax P_((Pcells  ce));
  280. extern void pbx P_((Pcells  ce));
  281. extern void pcx P_((Pcells  ce));
  282. extern void pdx P_((Pcells  ce));
  283. extern void pmovdd P_((Pcells  ce));
  284. extern void pmovdi P_((Pcells  ce));
  285. extern void pmovid P_((Pcells  ce));
  286. extern void pmovii P_((Pcells  ce));
  287. extern void ppush P_((Pcells  ce));
  288. extern void ppop P_((Pcells  ce));
  289. extern void pput P_((Pcells  ce));
  290. extern void pget P_((Pcells  ce));
  291. extern void pinc P_((Pcells  ce));
  292. extern void pdec P_((Pcells  ce));
  293. extern void padd P_((Pcells  ce));
  294. extern void psub P_((Pcells  ce));
  295. extern void pzero P_((Pcells  ce));
  296. extern void pnot0 P_((Pcells  ce));
  297. extern void pshl P_((Pcells  ce));
  298. extern void pnot P_((Pcells  ce));
  299. extern void pifz P_((Pcells  ce));
  300. extern void piffl P_((Pcells  ce));
  301. extern void ptjmp P_((Pcells  ce));
  302. extern void ptjmpb P_((Pcells  ce));
  303. extern void ptcall P_((Pcells  ce));
  304. extern void padr P_((Pcells  ce));
  305. extern void padrb P_((Pcells  ce));
  306. extern void padrf P_((Pcells  ce));
  307. extern void pmal P_((Pcells  ce)); 
  308. extern void pdivide P_((Pcells  ce)); 
  309.  
  310. #endif /* INST == 2 */
  311.  
  312. #if INST == 3
  313.  
  314. extern void pnop P_((Pcells  ce));
  315. extern void pmovdi P_((Pcells  ce));
  316. extern void pmovid P_((Pcells  ce));
  317. extern void pmovii P_((Pcells  ce));
  318. extern void ppush P_((Pcells  ce));
  319. extern void ppop P_((Pcells  ce));
  320. extern void pput P_((Pcells  ce));
  321. extern void pget P_((Pcells  ce));
  322. extern void pinc P_((Pcells  ce));
  323. extern void pdec P_((Pcells  ce));
  324. extern void padd P_((Pcells  ce));
  325. extern void psub P_((Pcells  ce));
  326. extern void pzero P_((Pcells  ce));
  327. extern void pnot0 P_((Pcells  ce));
  328. extern void pshl P_((Pcells  ce));
  329. extern void pnot P_((Pcells  ce));
  330. extern void prand P_((Pcells  ce));
  331. extern void pifz P_((Pcells  ce));
  332. extern void piffl P_((Pcells  ce));
  333. extern void ptjmp P_((Pcells  ce));
  334. extern void ptjmpb P_((Pcells  ce));
  335. extern void ptcall P_((Pcells  ce));
  336. extern void padr P_((Pcells  ce));
  337. extern void padrb P_((Pcells  ce));
  338. extern void padrf P_((Pcells  ce));
  339. extern void pmal P_((Pcells  ce)); 
  340. extern void pdivide P_((Pcells  ce)); 
  341.  
  342. extern void rollu P_((Pcells  ce));
  343. extern void rolld P_((Pcells  ce));
  344. extern void enter P_((Pcells  ce));
  345. extern void exch P_((Pcells  ce));
  346. extern void pop3 P_((Pcells  ce));
  347. extern void math3 P_((Pcells  ce));
  348. extern void movdd3 P_((Pcells  ce));
  349. extern void adr3 P_((Pcells  ce));
  350. extern void malchm3 P_((Pcells  ce));
  351.  
  352. #endif /* INST == 3 */
  353.  
  354. #if INST == 4
  355.  
  356. extern void pnop P_((Pcells  ce));
  357. extern void pmovdi P_((Pcells  ce));
  358. extern void pmovid P_((Pcells  ce));
  359. extern void pmovii P_((Pcells  ce));
  360. extern void ppushax P_((Pcells  ce));
  361. extern void ppushbx P_((Pcells  ce));
  362. extern void ppushcx P_((Pcells  ce));
  363. extern void ppushdx P_((Pcells  ce));
  364. extern void ppopax P_((Pcells  ce));
  365. extern void ppopbx P_((Pcells  ce));
  366. extern void ppopcx P_((Pcells  ce));
  367. extern void ppopdx P_((Pcells  ce));
  368. extern void pput P_((Pcells  ce));
  369. extern void pget P_((Pcells  ce));
  370. extern void pinc P_((Pcells  ce));
  371. extern void pdec P_((Pcells  ce));
  372. extern void padd P_((Pcells  ce));
  373. extern void psub P_((Pcells  ce));
  374. extern void pzero P_((Pcells  ce));
  375. extern void pnot0 P_((Pcells  ce));
  376. extern void pshl P_((Pcells  ce));
  377. extern void pifz P_((Pcells  ce));
  378. extern void piffl P_((Pcells  ce));
  379. extern void ptjmp P_((Pcells  ce));
  380. extern void ptjmpb P_((Pcells  ce));
  381. extern void ptcall P_((Pcells  ce));
  382. extern void padr P_((Pcells  ce));
  383. extern void padrb P_((Pcells  ce));
  384. extern void padrf P_((Pcells  ce));
  385. extern void pmal P_((Pcells  ce));
  386. extern void pdivide P_((Pcells  ce));
  387.  
  388. #endif /* INST == 4 */
  389.  
  390. #endif /* PROTOTYP_H */
  391.